Conversation
Replaces inconsistent toolbar UIs across alerts, reports, public URLs, and environment variables pages with a single reusable component. The toolbar provides: filter dropdown (left), search + sort + optional grid/list toggle (right). Filter options are page-specific via props. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- "Filter" is now plain clickable text opening a dropdown; applied filters show as removable chips with "Clear all" below the toolbar - "Newest" is a toggle button (not dropdown) that flips sort order - Search is a magnifying glass icon (h-9) that expands to an inline input; search text syncs to URL via ?q= param - Add `TableToolbarAppliedFilters`, `TableToolbarSearch`, `TableToolbarSort` sub-components - Remove old `TableToolbarSortDropdown` Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use `untrack` and `get()` to break circular reactive dependencies: - `$table.setGlobalFilter()` was re-triggering its own effect via store subscription - URL sync effects were creating `searchText` <-> `$page` cycles Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Wrap DropdownMenu.Label inside DropdownMenu.Group to provide required Menu.Group context for GroupHeading - Use explicit oninput handler instead of bind:value for search to ensure reliable propagation through $bindable chain Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace $bindable chain (3-level deep binding wasn't propagating in TanStack pages) with onSearchChange callback. All consumers now use the callback to update search state. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove local `searchText = text` write in `handleSearchChange` which created a Svelte 5 prop shadow, disconnecting the input from parent state. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Revert alerts and reports tables to original `ResourceList` pattern - Replace filter icon with `ListFilter` from lucide-svelte - Filter pills: white bg, h-7, in h-9 container vertically centered - Reorder toolbar right side: Search, Newest, View toggle - Filter and Newest text use `text-fg-primary` - Env vars page: `+` button aligns top with `items-start` Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Filter pills: font-medium, border-t divider restored, h-7 in h-9 container - Add children snippet to TableToolbar for inline extras (e.g. + button) - Env vars: + button rendered inside toolbar so applied filters span full width - Reorder: Newest before Search Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add FilterOutlined.svelte from Rill design system SVG - Use it in TableToolbarFilterDropdown instead of lucide ListFilter - Wrap toolbar in section with gap-y-2 for spacing between rows Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add persistent <hr> between toolbar and applied filters - Replace complex mask-based SVG with clean stroked outline path - Reduce env vars page gap from gap-6 to gap-3 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…d white Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove trivial `handleSearchChange` wrapper, pass callback directly - Remove `$bindable` on `viewMode`, use callback pattern consistently - Sort: icon-only button (ArrowDownNarrowWide/ArrowUpNarrowWide), no text/border - Swap order: Search before Sort - Add `enableSorting` prop to BasicTable; env vars disables it - Fix disabled search button: proper `disabled` attr instead of CSS-only - Add `aria-label` to filter trigger and sort button - View toggle: `bg-gray-200` to `bg-surface-hover` for theme support - Trim barrel exports to `TableToolbar` + types only - Use optional chaining on `onSortToggle?.()` for consistency Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…arrow - Search icon: remove border/bg, match sort icon style - Revert sort to text "Newest"/"Oldest" + ArrowUpDown - Show hr/applied filters only when filterGroups exist - Revert BasicTable enableSorting prop (keep column sorting) - Remove sortDescFirst from Activity column so no arrow shows by default Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When toolbar controls sort order, BasicTable clears its internal sorting state so column header arrows don't show. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace boolean `externalSort` with `externalSortKey` that reacts to value changes. Pass `sortDirection` through to BasicTable so clicking Newest/Oldest clears any active column header arrow. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Why are we introducing a sort toggle when that can just be handled in the table column header? |
discussed with Di, this will only be for dashboards where we dont have that functionality; will hide it on the others |
migrate public URL to same table type as env var
Also applied to resource page |
AdityaHegde
left a comment
There was a problem hiding this comment.
A couple of my previous comments are not addressed.
Also adding a filter moves the table since the filter selection+clear button show up. Feels a bit jarring. In explore we always show this bar. Do we want something similar here?
|
Shifting is fine as long as it's animated, a smooth push-down (150–200ms ease-out) makes it feel intentional rather than a layout glitch. This also applies when filters overflow to a second row; the table should continue to shift down accordingly. If we go reserved space, we'd have dead whitespace when no filters are active, which feels worse. My vote is shift + animate. |
toggle, applied filter chips, and view mode toggle
"Clear all"
Search bar can be removed if req'd
Components:
loom: https://www.loom.com/share/16b8de614c214305b385d966e7352b0a?from_recorder=1&focus_title=1
Will replace: #9156
Checklist: